#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# @Time: 2019/4/9  20:44
# @Author: 余浪人
# @email: yulangren520@gmail.com

import datetime
import os


# ******* 配置项目路径 *******#
def get_sys_uri():
    base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))).replace('\\', '/')
    return base_dir


# ******* 配置MYSQL *******#
# def Mysql(user, password, dbName, location='localhost', post=3306):
#     return f"mysql+cymysql://{user}:{password}@{location}:{post}/{dbName}"


# ********************************************** 配置信息**********************************************#
class Config:
    # ******* 配置数据库 *******#
    # SQLALCHEMY_DATABASE_URI = Mysql('root', '248369', 'tl_pay', 'localhost', 3306)  # Mysql 数据库
    SQLALCHEMY_DATABASE_URI = ''
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # ******* 配置session *******#
    SESSION_TYPE = "redis"
    # SESSION_REDIS = get_redis()
    SESSION_USE_SIGNER = True  # 发送到浏览器上session的cookie值进行加密
    SESSION_KEY_PREFIX = "TL_CMS"  # 保存到session中的值的前缀
    SESSION_COOKIE_HTTPONLY = True # cookie不允许被JavaScript读取
    SESSION_COOKIE_SAMESITE = 'Lax'
    SESSION_REFRESH_EACH_REQUEST=True
    JSON_AS_ASCII=True
    TEMPLATES_AUTO_RELOAD=True
    PERMANENT_SESSION_LIFETIME = datetime.timedelta(seconds=12 * (60 * 60))  # 设置session过期时间
    # ******* 配置token *******#
    SECRET_KEY = b'*!-TL-&*1'  # token key ( 解密 )
    EXPIRATION = 25200  # KEY 有效期   ( 默认一周 )
    # ******* 配置支付宝网关 *******#
    ALIPAY_URL = 'https://openapi.alipaydev.com/gateway.do'
    # ******* 配置系统分页数 *******#
    PAGE_INTERVAL = 15
    # ******* 配置缓存有效时间 *******#
    PAST_TIME = 3600 * 24  # 一天
    CACHE_TYPE = 'filesystem'
    CACHE_DIR=  os.path.join(get_sys_uri(),'apps/cache')
    CACHE_DEFAULT_TIMEOUT=2*((60*60)*24)  # 缓存时间  2天
    CACHE_THRESHOLD=1000 # 最大缓存条数
    # ******* 配置验证码有效时间 *******#
    VERIFY_CODE_TIME = 2  # 分钟
    # ******* 配置QQ登录服务 *******#
    APP_ID = 101798980  # QQ互联appId
    REDIRECT_URI = "http://specimen.vip/auto_login"  # QQ互联回调地址
    # ******* 配置系统信息 *******#
    PORT = 80
    # ******* 前台用户访问频率控制 *******#
    RESTRICT_TIME = 60  # 限制时间/分钟
    MAX_NUM = 30  # 1分钟内最大允许访问数


# 生产环境
class ProductionConfig(Config):
    DEBUG = True
    # TESTING =True
